package com.example.NettyStudy;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelHandlerInvoker;
import io.netty.util.concurrent.EventExecutorGroup;

/**
 * Created by Administrator on 2017/5/25.
 */
public class TimeClientHandler extends ChannelHandlerAdapter {

    private  ByteBuf firstMessage;

    public TimeClientHandler(){

        byte[] req ="QUERY TIME ORDER".getBytes();

        firstMessage= Unpooled.buffer(req.length);

        firstMessage.writeBytes(req);

    }

    @Override

    public void channelActive(ChannelHandlerContext ctx) throws Exception {

        ctx.writeAndFlush(firstMessage);

        System.out.println("客户端active");

    }



    @Override

    public void channelRead(ChannelHandlerContext ctx, Object msg)

            throws Exception {

        System.out.println("客户端收到服务器响应数据");

        ByteBuf buf=(ByteBuf) msg;

        byte[] req=new byte[buf.readableBytes()];

        buf.readBytes(req);

        String body=new String(req,"UTF-8");

        System.out.println("Now is:"+body);



    }



    @Override

    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {

        ctx.flush();

        System.out.println("客户端收到服务器响应数据处理完成");

    }



    @Override

    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)

            throws Exception {


        ctx.close();

        System.out.println("客户端异常退出");

    }
}
